﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HashTableTest //Hashtable类实现了 IDictionary 接口，
                        //集合中的值都是以键值对的形式存取的。
                        //Hashtable 称为哈希表，也称为散列表，
                        //在该集合中使用键值对（key/value）的形式存放值。
{
    class Program
    {
        static void Main(string[] args)
        {
            Hashtable ht = new Hashtable();
            ht.Add(1,"英语");
            ht.Add(2,"高数");
            ht.Add(3,"数据库");
            ht.Add(4,"C语言");
            ht.Add(5,"数据结构");
            Console.WriteLine("请选择服务：\n1.查找指定图书\n2.查看所有图书信息");
            int index = int.Parse(Console.ReadLine());
            if (index==1)
            {
                Console.WriteLine("请输入图书编号：");
                int id = int.Parse(Console.ReadLine());
                bool flag = ht.ContainsKey(id);
                if (flag)
                {
                    Console.WriteLine("您查找的图书名称为：{0}",ht[id].ToString());
                }
            }
            else if (index==2)
            {
                foreach (DictionaryEntry v in ht)
                {
                    int key = (int)v.Key;
                    string value = v.Value.ToString();
                    Console.WriteLine("图书编号：{0}，图书名称：{1}",key,value);
                }
            }
            
        }
    }
}
